
import Head from 'next/head'

<Head>
  <script>
    {
      `(function() {
         var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?e60fb290e204e04c5cb6f79b0ac1e697";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
       })();`
    }
  </script>
</Head>

![LangChain](https://pica.zhimg.com/50/v2-56e8bbb52aa271012541c1fe1ceb11a2_r.gif)





非结构化 Unstructured[#](#unstructured "到该标题的永久链接")
==================================

本页介绍如何在LangChain中使用[`unstructured`](https://github.com/Unstructured-IO/unstructured)生态系统。来自[Unstructured.IO](https://www.unstructured.io/)的`unstructured`软件包从原始源文件（如PDF和Word文档)中提取干净的文本。

本页分为两个部分：安装和设置，以及特定`unstructured`包装器的参考。

安装和设置[#](#installation-and-setup "到该标题的永久链接")
---------------------------------------------

如果您正在使用本地运行的加载程序，请使用以下步骤在本地运行`unstructured`及其依赖项。

* 使用`pip install "unstructured[local-inference]"`安装Python SDK。

* 如果您的系统中尚未安装以下系统依赖项，请安装它们。
根据您要解析的文档类型，您可能不需要全部安装。

	+ `libmagic-dev`（文件类型检测)
	+ `poppler-utils`（图片和PDF)
	+ `tesseract-ocr`（图片和PDF)
	+ `libreoffice`（MS Office文档)
	+ `pandoc`（EPUBs)

* 如果您使用“hi_res”策略解析PDF文件，请运行以下命令安装`detectron2`模型，`unstructured`用于布局检测：

	+ `pip install "detectron2@git+https://github.com/facebookresearch/detectron2.git@e2ce8dc#egg=detectron2"`
	+ 如果未安装`detectron2`，`unstructured`将退回到使用“fast”策略处理PDF文件，该策略直接使用`pdfminer`，不需要`detectron2`。

如果您想更快地开始运行，可以简单地运行`pip install unstructured` 并使用`UnstructuredAPIFileLoader` 或`UnstructuredAPIFileIOLoader`。这将使用托管的Unstructured API处理您的文档。请注意，目前（截至2023年5月1日)，Unstructured API是开放的，但很快将需要一个API密钥。一旦API密钥可用，[Unstructured文档页面](https://unstructured-io.github.io/)将提供生成API密钥的说明。如果您想自主托管Unstructured API或在本地运行它，请参阅[这里](https://github.com/Unstructured-IO/unstructured-api#dizzy-instructions-for-using-the-docker-image)的说明。

包装器[#](#wrappers "该标题的永久链接")
----------------------------

### 数据加载器[#](#data-loaders "该标题的永久链接")

`langchain`内的主要`非结构化`包装器是数据加载器。以下显示了如何使用最基本的非结构化数据加载器。在`langchain.document_loaders`模块中还有其他特定于文件的数据加载器可用。

```python
from langchain.document_loaders import UnstructuredFileLoader

loader = UnstructuredFileLoader("state_of_the_union.txt")
loader.load()

```

如果使用`UnstructuredFileLoader(mode="elements")`实例化加载器，则在可用时，加载器将跟踪其他元数据，如页码和文本类型（即标题、叙述文本)。

